import cv2
import numpy as np
import matplotlib.pyplot as plt

def cv_show(img, name):
  cv2.imshow(name, img)
  cv2.waitKey(0)
  cv2.destroyAllWindows()

img = cv2.imread('clahe.jpg',0) #0表示灰度图 #clahe
plt.hist(img.ravel(),256); 
plt.show()

equ = cv2.equalizeHist(img)
plt.hist(equ.ravel(), 256)
plt.show()

res = np.hstack((img,equ))
cv_show(res,'res')

#自适应直方图均衡化
clahe = cv2.createCLAHE(clipLimit=2.0, tileGridSize=(8,8)) 

res_clahe = clahe.apply(img)
res = np.hstack((img,equ,res_clahe))
cv_show(res,'res')

